home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr49 / obj2asm.zip / OUINITRE.C < prev    next >
Text File  |  1991-10-02  |  4KB  |  133 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "o.h"
  4.  
  5. void init_trees()
  6. {
  7.     NAME_T  *name_root;
  8.     SEG_T   *segment_root;
  9.     GRP_T   *group_root;
  10.     PUB_T   *public_root;
  11.     EXT_T   *extern_root;
  12.     SEX_T   *sex_root;
  13.     DAT_T   *data_root;
  14.     STRUC_T *struc_root;
  15.     FIX_T   *fix_root;
  16.     HINT_T  *hint_root;
  17.     LINE_T  *line_root;
  18.     SCOPE_T *arg_scope_root;
  19.     SCOPE_T *loc_scope_root;
  20.     SCOPE_T *end_scope_root;
  21.  
  22.     line_root = o_malloc(sizeof(LINE_T));
  23.     line_root->hex_offset = -1;
  24.     line_tree = new_tree((char*)line_root,FALSE);
  25.  
  26.     loc_scope_root = o_malloc(sizeof(SCOPE_T));
  27.     loc_scope_root->hex_offset = -1;
  28.     loc_scope_root->head = NULL;
  29.     loc_scope_tree = new_tree(loc_scope_root,FALSE);
  30.  
  31.     arg_scope_root = o_malloc(sizeof(SCOPE_T));
  32.     arg_scope_root->hex_offset = -1;
  33.     arg_scope_root->head = NULL;
  34.     arg_scope_tree = new_tree(arg_scope_root,FALSE);
  35.  
  36.     end_scope_root = o_malloc(sizeof(SCOPE_T));
  37.     end_scope_root->hex_offset = -1;
  38.     end_scope_root->head = NULL; /* field not used in TCENDSCP */
  39.     end_scope_tree = new_tree(end_scope_root,TRUE);    /* allow duplicates */
  40.  
  41.     /* Make an empty name tree node */
  42.     name_root = (NAME_T *)o_malloc( sizeof(NAME_T) );
  43.     name_root->index = 0;
  44.     strcpy( name_root->name, "Root NAME Node" );
  45.  
  46.     name_tree = new_tree( (char *)name_root, FALSE );
  47.  
  48.     /* Make an empty segment tree node */
  49.     segment_root = (SEG_T *)o_malloc( sizeof(SEG_T) );
  50.     segment_root->index      = -1;      /* Zero reserved to some equates */
  51.     segment_root->name       = 0;
  52.     segment_root->class      = NULL;
  53.     segment_root->length     = 0;
  54.     segment_root->code       = FALSE;
  55.     segment_root->bit32      = FALSE;
  56.  
  57.     segment_tree = new_tree( (char *)segment_root, FALSE );
  58.  
  59.     /* Make an empty group tree node */
  60.     group_root = (GRP_T *)o_malloc( sizeof(GRP_T) );
  61.     group_root->index = 0;
  62.     group_root->name = 0;
  63.  
  64.     group_tree = new_tree( (char *)group_root, FALSE );
  65.  
  66.     /* Make an empty public tree node */
  67.     public_root = (PUB_T *)o_malloc( sizeof(PUB_T) );
  68.     public_root->seg_idx = -1;      /* Zero reserved to some equates */
  69.     public_root->offset  = 0;
  70.     public_root->domain  = 0;
  71.     public_root->scope   = FALSE;
  72.     strcpy( public_root->name, "Root PUBLIC Node" );
  73.  
  74.     public_tree = new_tree( (char *)public_root, TRUE );
  75.  
  76.     /* Make an empty external tree node */
  77.     extern_root = (EXT_T *)o_malloc( sizeof(EXT_T) );
  78.     extern_root->index    = 0;
  79.     extern_root->type     = 0;
  80.     extern_root->com_ext  = 0;
  81.     extern_root->var_type = 0;
  82.     extern_root->size     = 0L;
  83.     extern_root->used     = 0;
  84.     extern_root->scope    = 0;
  85.     strcpy( extern_root->name, "Root EXTERN Node" );
  86.  
  87.     extern_tree = new_tree( (char *)extern_root, FALSE );
  88.  
  89.     /* Make an empty external tree node */
  90.     sex_root = (SEX_T *)o_malloc( sizeof(SEX_T) );
  91.     sex_root->seg_index = 0;
  92.  
  93.     sex_tree = new_tree( (char *)sex_root, FALSE );
  94.  
  95.     /* Make an empty data record tree node */
  96.     data_root = (DAT_T *)o_malloc( sizeof(DAT_T) );
  97.     data_root->seg_idx  = -1;           /* Zero reserved to some equates */
  98.     data_root->offset   = 0;
  99.     data_root->file_pos = 0L;
  100.     data_root->length   = 0;
  101.  
  102.     data_tree = new_tree( (char *)data_root, FALSE );
  103.  
  104.     /* Make an empty structure tree node */
  105.     struc_root = (STRUC_T *)o_malloc( sizeof(STRUC_T) );
  106.     struc_root->form = "";
  107.  
  108.     struc_tree = new_tree( (char *)struc_root, FALSE );
  109.  
  110.     /* Make an empty fixup record tree node */
  111.     fix_root = (FIX_T *)o_malloc( sizeof(FIX_T) );
  112.     fix_root->seg_idx      = -1;        /* Zero reserved to some equates */
  113.     fix_root->offset       = 0;
  114.     fix_root->relate       = 0;
  115.     fix_root->form         = 0;
  116.     fix_root->a_mode       = 0;
  117.     fix_root->a_index      = 0;
  118.     fix_root->b_mode       = 0;
  119.     fix_root->b_index      = 0;
  120.     fix_root->displacement = 0L;
  121.     fix_root->extended     = FALSE;
  122.     fix_root->word_sized   = FALSE;
  123.  
  124.     fix_tree = new_tree( (char *)fix_root, FALSE );
  125.  
  126.     hint_root = (HINT_T *)o_malloc( sizeof(HINT_T) );
  127.     hint_root->seg_idx   = 0;
  128.     hint_root->offset    = 0L;
  129.     hint_root->hint_type = 0;
  130.     hint_root->length    = 0L;
  131.     hint_tree = new_tree( (char *)hint_root, FALSE );
  132. }
  133.